// ----------------------------------------------------------
// This Source Code Form is subject to the terms of the
// Mozilla Public License, v.2.0. If a copy of the MPL
// was not distributed with this file, You can obtain one
// at http://mozilla.org/MPL/2.0/.
// ----------------------------------------------------------
// Codebase: https://github.com/ArKuznetsov/cpdb/
// ----------------------------------------------------------

#Использовать "../../core"

#Область СлужебныйПрограммныйИнтерфейс

// Процедура - устанавливает описание команды
//
// Параметры:
//  Команда    - КомандаПриложения     - объект описание команды
//
Процедура ОписаниеКоманды(Команда) Экспорт
	
	Команда.Опция("pp params", "", "Файлы JSON содержащие значения параметров,
	                               | могут быть указаны несколько файлов разделенные "";""")
	       .ТСтрока()
	       .ВОкружении("CPDB_PARAMS");

	Команда.Опция("ip ib-path", "", "путь к каталогу базы 1С")
	       .ТСтрока()
	       .Обязательный()
	       .ВОкружении("CPDB_IB_REF");
	
	Команда.Опция("ee err-if-exist", Ложь, "сообщить об ошибке если по указанному пути существует ИБ 1С")
	       .Флаговый()
	       .ВОкружении("CPDB_IB_ERROR_IF_EXIST");
	
	Команда.Опция("nl name-in-list", "", "имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)")
	       .ТСтрока()
	       .ВОкружении("CPDB_IB_NAME_IN_LIST");
	
	Команда.Опция("tp tmplt-path", "", "путь к шаблону для создания информационной базы (*.cf; *.dt).
	                                   | Если шаблон не указан, то будет создана пустая ИБ")
	       .ТСтрока()
	       .ВОкружении("CPDB_IB_TEMPLATE_PATH");
	
КонецПроцедуры // ОписаниеКоманды()

// Процедура - запускает выполнение команды устанавливает описание команды
//
// Параметры:
//  Команда    - КомандаПриложения     - объект  описание команды
//
Процедура ВыполнитьКоманду(Знач Команда) Экспорт

	ЧтениеОпций = Новый ЧтениеОпцийКоманды(Команда);

	ВыводОтладочнойИнформации = ЧтениеОпций.ЗначениеОпции("verbose");

	ПараметрыСистемы.УстановитьРежимОтладки(ВыводОтладочнойИнформации);

	ПутьКБазе            = ЧтениеОпций.ЗначениеОпции("ib-path");
	ИмяВСпискеБаз        = ЧтениеОпций.ЗначениеОпции("name-in-list");
	ПутьКШаблону         = ЧтениеОпций.ЗначениеОпции("tmplt-path");
	ОшибкаЕслиСуществует = ЧтениеОпций.ЗначениеОпции("err-if-exist");
	
	ИспользуемаяВерсияПлатформы = ЧтениеОпций.ЗначениеОпции("v8version", Истина);
	
	РаботаСИБ.СоздатьФайловуюБазу(ПутьКБазе,
	                              ИспользуемаяВерсияПлатформы,
	                              ОшибкаЕслиСуществует,
	                              ПутьКШаблону,
	                              ИмяВСпискеБаз);

КонецПроцедуры // ВыполнитьКоманду()

#КонецОбласти // СлужебныйПрограммныйИнтерфейс
